home *** CD-ROM | disk | FTP | other *** search
/ PC go! 2008 March / PCgo 2008-03 (CD).iso / interface / images / pngHack.htc < prev    next >
Encoding:
Text File  |  2006-12-12  |  1.3 KB  |  61 lines

  1. <!--
  2.  
  3.     PNG Hack
  4.  
  5.     Copyright 2002, Aaron Porter <aaron@javasource.org>
  6.  
  7.     Inspired by Erik Arvidsson's "PNG Behavior" at
  8.     http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html
  9.  
  10. -->
  11. <public:component>
  12.  <public:attach event="onpropertychange" for="element" onEvent="propertyChanged()" />
  13.  <script language="JavaScript">
  14.  
  15.     var needHack = needHack();
  16.  
  17.     var transparentImage = "images/transparent.gif";
  18.  
  19.     pngHack();
  20.  
  21.     function propertyChanged()
  22.     {
  23.         if (event.propertyName == "src")
  24.             pngHack();
  25.     }
  26.  
  27.     function pngHack()
  28.     {
  29.         if (!needHack)
  30.             return;
  31.  
  32.         var src = element.src;
  33.  
  34.         if (src.indexOf(transparentImage) != -1)
  35.             return; // Already fixed
  36.  
  37.         if (src.indexOf("png") == -1) // There's got to be a better check than this!
  38.         {
  39.             element.runtimeStyle.filter = "";
  40.             return;
  41.         }
  42.  
  43.         element.src = transparentImage;
  44.         element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
  45.     }
  46.  
  47.     function needHack()
  48.     {
  49.         var pos = navigator.userAgent.indexOf("MSIE ");
  50.  
  51.         if (pos == -1)
  52.             return false;
  53.  
  54.         var version = navigator.userAgent.substring(pos + 5);
  55.  
  56.         return (((version.indexOf("5.5") == 0) || (version.indexOf("6") == 0)) && (navigator.platform == ("Win32")));
  57.     }
  58.  
  59.  </script>
  60. </public:component>
  61.